home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
ENGINEER
/
2908.ZIP
/
ANGLES.BAS
< prev
next >
Wrap
BASIC Source File
|
1991-05-05
|
6KB
|
161 lines
10 ' COMPOUND ANGLE COMPUTATION PROGRAM
20 ' "ANGLES.BAS" VER. 2.0 OCTOBER 23,1990
22 ' Ver. 2.1 angles.bas revised 12/26/90
24 ' Ver. 2.2 angles.bas revised 2/9/91
30 '
40 ' COPYRIGHT 1990 ROBERT W. KASCAK
50 ' 19 LAUREL ST., TRUMBULL, CT., 06611-3919
60 ' ALL RIGHTS RESERVED WORLDWIDE
70 '
90 SCREEN 2
100 ' MENU
110 PRINT FRE(O): CLS:PRINT:PRINT
115 PRINT: PRINT "COPYRIGHT 1990 ROBERT W. KASCAK
120 PRINT: PRINT"*** MAIN MENU FOR ANGLE.BAS PROGRAM
130 PRINT
140 PRINT "1 ENTER CONSTANTS FOR CONTAINER
150 PRINT "2 CHANGE CONSTANTS
160 PRINT "3 PRINT MEASUREMENTS AND CUTTING ANGLES (PRINTER ON)
165 PRINT "4 SHOW GRAPHICS--(COMPUTER MUST BE IN GRAPHICS MODE )
170 PRINT "5 CONVERT DEGREES OF SLOPE TO INCHES PER FOOT OF PITCH
175 PRINT "6 CONVERT INCHES PER FOOT OF PITCH TO DEGREES OF SLOPE
178 PRINT "7 RETURN TO DOS
180 PRINT: PRINT" ENTER SELECTION "
185 SE$=INKEY$: IF SE$="" THEN 185 ELSE SE=VAL(SE$)
190 ON SE GOSUB 1010,2010,3510,6010,4010,4510,310,9010
200 '
210 GOTO 100
300 '
310 SYSTEM
1000 '
1010 CLS:PRINT "ENTER CONSTANTS, DECIMALS ONLY ":PRINT
1015 PRINT:PRINT "** NOTE ** CONTAINERS ARE BUILT UPSIDE DOWN **
1020 PRINT:INPUT "ENTER NUMBER OF SIDES ";SI
1030 INPUT "ENTER HEIGHT OF CONTAINER ";H
1040 INPUT "ENTER (LARGER) BOTTOM DIAMETER ";BD
1050 INPUT "ENTER (SMALLER) TOP DIAMETER ";TD
1052 GOSUB 1060: GOSUB 2010: RETURN
1060 IF SI>16 THEN CF=1.01: RETURN
1070 IF SI>13 THEN CF=1.014: RETURN
1080 IF SI>11 THEN CF=1.02: RETURN
1090 IF SI>9 THEN CF=1.028: RETURN
1100 IF SI>7 THEN CF=1.042: RETURN
1110 IF SI>5 THEN CF=1.095: RETURN
1120 IF SI=5 THEN CF=1.04: RETURN
1125 PRINT: PRINT "COPYRIGHT 1990 ROBERT W. KASCAK
1130 IF SI=4 THEN CF=1.11: RETURN
2000 '
2010 'SUB FOR CHANGING CONSTANTS
2020 PRINT:PRINT "CHANGE CONSTANTS (Y/N)
2030 SS$=INKEY$: IF SS$="Y" OR SS$="y" THEN 1010 ELSE IF SS$="N" OR SS$="n" THEN GOSUB 5010 ELSE 2030
2040 GOSUB 3010
2050 GOSUB 9010
2060 RETURN
3000 '
3010 'SUB FOR PRINTING MEASUREMENTS AND ANGLES
3020 CLS:PRINT
3030 PRINT " CONSTANTS:
3040 PRINT " Number of Sides...........SI "SI
3050 PRINT " Height....................H "H
3060 PRINT " Bottom Diameter...........BD "BD
3070 PRINT " Top Diameter..............TD "TD
3080 PRINT:PRINT " MEASUREMENTS:
3090 PRINT " Circle Factor.............CF "CF
3100 PRINT " code......................c "C
3110 PRINT " Slope - Deg. from Vert....S "S
3115 PRINT " Pitch - Inches per Foot...P "P
3120 PRINT " Panel Bottom Width........B "B
3130 PRINT " Panel Top Width...........T "T
3140 PRINT " Panel Center Length.......L "L
3150 PRINT " Panel Edge Length.........LE "LE
3160 PRINT " code......................d "D
3170 PRINT:PRINT " CUTTING ANGLES:
3180 PRINT " Miter Guage Setting.......M "M
3190 PRINT " Saw Blade Tilt Angle......A "A
3200 RETURN
3500 '
3510 '
3520 LPRINT
3530 LPRINT " CONSTANTS:
3540 LPRINT " Number of Sides..........SI "SI
3550 LPRINT " Height...................H "H
3560 LPRINT " Bottom Diameter..........BD "BD
3570 LPRINT " Top Diameter.............TD "TD
3580 LPRINT:LPRINT " MEASUREMENTS:
3590 LPRINT " Circle Factor............CF "CF
3600 LPRINT " code.....................c "C
3610 LPRINT " Slope - Deg. from Vert...S "S
3615 LPRINT " Pitch - Inches per Foot..P "P
3620 LPRINT " Panel Bottom Width.......B "B
3630 LPRINT " Panel Top Width..........T "T
3640 LPRINT " Panel Center Length......L "L
3650 LPRINT " Panel Edge Length........LE "LE
3660 LPRINT " code.....................d "D
3670 LPRINT:LPRINT " CUTTING ANGLES:
3680 LPRINT " Miter Guage Setting......M "M
3690 LPRINT " Saw Blade Tilt Angle.....A "A
3700 GOSUB 9010: RETURN
4000 '
4010 'SLOPE TO PITCH
4020 CLS:PRINT:INPUT "ENTER DEGREES OF SLOPE FROM HORIZONTAL (DEGREES . DECIMAL)";D
4030 P=TAN(D/57.296)*12
4040 PRINT:PRINT:PRINT:PRINT "THE SLOPE OF "D "DEGREES IS "P "INCHES PER FOOT"
4050 GOSUB 9010
4060 RETURN
4500 '
4510 ' PITCH TO SLOPE
4520 CLS:PRINT:INPUT "ENTER THE PITCH IN INCHES OF RISE PER FOOT (INCHES . DECIMAL)";R
4530 S=ATN(R/12)*57.296
4540 PRINT:PRINT:PRINT:PRINT "THE PITCH OF "R "INCHES PER FOOT IS "S "DEGREES FROM HORIZONTAL"
4550 GOSUB 9010
4560 RETURN
5000 '
5010 C=(BD-TD)/2: C$=STR$(C): IF VAL(RIGHT$(C$,3)) < 0 THEN C$= STR$(C*10)
5012 C1$=LEFT$(C$,5): C=VAL(C1$)
5020 B=BD*CF*3.1416/SI: B$=STR$(B): B1$=LEFT$(B$,6): B=VAL(B1$)
5030 T=TD*CF*3.1416/SI: T$=STR$(T): T1$=LEFT$(T$,6): T=VAL(T1$)
5035 D9=(B-T)/2: D8$=STR$(D9): D7$=LEFT$(D8$,6): D7=VAL(D7$): IF VAL(RIGHT$(D8$,3))=-2 THEN D7= D7*.01 ELSE IF VAL(RIGHT$(D8$,3))=-3 THEN D7= D7*.001
5037 D=D7
5040 S=ATN(C/H)*57.296: S$=STR$(S): S1$=LEFT$(S$,6): S=VAL(S1$)
5050 L=SQR(C^2+H^2): L$=STR$(L): L1$=LEFT$(L$,6): L=VAL(L1$)
5055 P=H*12/L: P$=STR$(P): P1$=LEFT$(P$,6): P=VAL(P1$)
5060 LE=SQR(D^2+L^2): LE$=STR$(LE): LO$=LEFT$(LE$,6): LE=VAL(LO$)
5070 MO=90-(ATN(D/L)*57.296): M$=STR$(MO): M1$=LEFT$(M$,7): M=VAL(M1$)
5080 A=COS(S/57.296)*(360/SI)/2: A$=STR$(A): A1$=LEFT$(A$,7): A=VAL(A1$)
5090 RETURN
6000 REM
6010 ' PUT IMAGE ON GRAPHICS SCREEN
6020 CLS: PRINT "SELECT NUMBER OF FIGURE TO SHOW
6030 PRINT" FIGURE 1
6040 PRINT" FIGURE 2
6050 PRINT" FIGURE 3
6060 PRINT" FIGURE 4
6080 PRINT: PRINT" ENTER SELECTION "
6085 SE$=INKEY$: IF SE$="" THEN 6085 ELSE SE=VAL(SE$)
6090 ON SE GOSUB 6110,6210,6310,6410,9010
6095 RETURN
6110 ' PRINT FIGURE 1
6120 DEF SEG = &HB800
6140 BLOAD"FIGURE01.PIC",0
6180 GOSUB 9020
6190 RETURN
6210 ' PRINT FIGURE 2
6220 DEF SEG = &HB800
6240 BLOAD"FIGURE02.PIC",0
6280 GOSUB 9020
6290 RETURN
6310 ' PRINT FIGURE 3
6320 DEF SEG = &HB800
6340 BLOAD"FIGURE03.PIC",0
6380 GOSUB 9020
6390 RETURN
6410 ' PRINT FIGURE 4
6420 DEF SEG = &HB800
6440 BLOAD"FIGURE04.PIC",0
6480 GOSUB 9020
6490 RETURN
9000 ' PRINT TO SCREEN AND RETURN
9010 LOCATE 24,10: INPUT "HIT 'ENTER' FOR MENU "; ME: RETURN
9020 LOCATE 24,5: INPUT "USE 'SHIFT-PRINT SCREEN' FOR PRINTOUT OR USE 'ENTER' FOR MENU ";ME
9030 RETURN